package com.learn.english.service;

import com.learn.english.model.entity.CourseVideo;

import java.util.List;

/**
 * 视频服务接口
 */
public interface IVideoService {

    /**
     * 获取视频总数
     * @return 视频总数
     */
    Long getVideoCount();
    
    /**
     * 播放视频
     * @param filename 视频文件名
     */
    void playVideo(String filename);
    
    /**
     * 上传视频信息
     * @param courseVideo 课程视频信息
     * @return 保存后的视频对象
     */
    CourseVideo upload(CourseVideo courseVideo);
    
    /**
     * 根据章节ID获取视频列表
     * @param chapterId 章节ID
     * @return 视频列表
     */
    List<CourseVideo> getVideoListByChapterId(Long chapterId);
    
    /**
     * 根据ID获取视频
     * @param id 视频ID
     * @return 视频对象
     */
    CourseVideo getVideoById(Long id);
    
    /**
     * 更新视频信息
     * @param courseVideo 视频信息
     * @return 更新结果
     */
    boolean updateVideo(CourseVideo courseVideo);
    
    /**
     * 删除视频
     * @param id 视频ID
     * @return 删除结果
     */
    boolean deleteVideo(Long id);
    
    /**
     * 删除章节下的所有视频
     * @param chapterId 章节ID
     * @return 删除结果
     */
    boolean deleteByChapterId(Long chapterId);
    
    /**
     * 更新视频排序
     * @param id 视频ID
     * @param sort 排序值
     * @return 更新结果
     */
    boolean updateSort(Long id, Integer sort);
}